package com.ruoyi.mstore.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.mstore.domain.Activity;
import com.ruoyi.mstore.service.ActivityService;
import com.ruoyi.mstore.mapper.ActivityMapper;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
* @author mder
* @description 针对表【activity(活动表)】的数据库操作Service实现
* @createDate 2025-03-19 19:10:28
*/
@Service
public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity>
    implements ActivityService{

    @Override
    public List<Activity> getByActivity(Activity activity) {
// 使用 LambdaQueryWrapper 构建动态查询条件
        LambdaQueryWrapper<Activity> queryWrapper = new LambdaQueryWrapper<>();

        // 如果 activityId 不为空，则添加 activity_id 条件
        if (activity.getActivityId() != null) {
            queryWrapper.eq(Activity::getActivityId, activity.getActivityId());
        }
        // 如果 title 不为空，则添加 title 条件
        if (activity.getTitle() != null && !activity.getTitle().isEmpty()) {
            queryWrapper.like(Activity::getTitle, activity.getTitle());
        }
        // 如果 content 不为空，则添加 content 条件
        if (activity.getContent() != null && !activity.getContent().isEmpty()) {
            queryWrapper.like(Activity::getContent, activity.getContent());
        }
        // 如果 storeId 不为空，则添加 store_id 条件
        if (activity.getStoreId() != null) {
            queryWrapper.eq(Activity::getStoreId, activity.getStoreId());
        }
        // 如果 activityStatus 不为空，则添加 activity_status 条件
        if (activity.getActivityStatus() != null) {
            queryWrapper.eq(Activity::getActivityStatus, activity.getActivityStatus());
        }
        // 如果 publishTime 不为空，则添加 publish_time 条件
        if (activity.getPublishTime() != null) {
            queryWrapper.eq(Activity::getPublishTime, activity.getPublishTime());
        }
        // 如果 image 不为空，则添加 image 条件
        if (activity.getImage() != null && !activity.getImage().isEmpty()) {
            queryWrapper.eq(Activity::getImage, activity.getImage());
        }
        // 如果 auditStatus 不为空，则添加 audit_status 条件
        if (activity.getAuditStatus() != null) {
            queryWrapper.eq(Activity::getAuditStatus, activity.getAuditStatus());
        }
        // 如果 ext1 不为空，则添加 ext1 条件
        if (activity.getExt1() != null && !activity.getExt1().isEmpty()) {
            queryWrapper.eq(Activity::getExt1, activity.getExt1());
        }
        // 如果 ext2 不为空，则添加 ext2 条件
        if (activity.getExt2() != null && !activity.getExt2().isEmpty()) {
            queryWrapper.eq(Activity::getExt2, activity.getExt2());
        }
        // 如果 ext3 不为空，则添加 ext3 条件
        if (activity.getExt3() != null && !activity.getExt3().isEmpty()) {
            queryWrapper.eq(Activity::getExt3, activity.getExt3());
        }
        // 如果 ext4 不为空，则添加 ext4 条件
        if (activity.getExt4() != null && !activity.getExt4().isEmpty()) {
            queryWrapper.eq(Activity::getExt4, activity.getExt4());
        }
        // 如果 ext5 不为空，则添加 ext5 条件
        if (activity.getExt5() != null && !activity.getExt5().isEmpty()) {
            queryWrapper.eq(Activity::getExt5, activity.getExt5());
        }

        // 执行查询
        return baseMapper.selectList(queryWrapper);
    }

    @Override
    public boolean addActivity(Activity activity) {
        // 设置发布时间为当前时间
        activity.setPublishTime(new Date());
        // 调用 MyBatis-Plus 的 save 方法插入数据
        return this.save(activity);
    }

    @Override
    public boolean updateActivity(Activity activity) {
        // 调用 MyBatis-Plus 的 updateById 方法更新数据
        return this.updateById(activity);
    }

    @Override
    public boolean deleteActivity(Long activityId) {
        // 调用 MyBatis-Plus 的 removeById 方法删除数据
        return this.removeById(activityId);
    }
}




